@echo off
chcp 936 > nul
REM ========================================================================
REM JAR更新工具 - Windows EXE 打包脚本 (GBK编码版本)
REM ========================================================================

setlocal enabledelayedexpansion

echo.
echo ================================================================
echo          JAR更新工具 - Windows EXE 打包脚本
echo ================================================================
echo.

REM 检查当前目录
if not exist "src\main.py" (
    echo [错误] 请在项目根目录下运行此脚本！
    echo 当前目录: %CD%
    pause
    exit /b 1
)

REM 检查Python
echo [1/6] 检查Python环境...
python --version >nul 2>&1
if errorlevel 1 (
    echo [错误] Python未安装
    pause
    exit /b 1
)
python --version
echo [成功] Python已安装

REM 检查文件
echo.
echo [2/6] 检查必要文件...
if not exist "docs\img\update.png" (
    echo [错误] 图标文件不存在
    pause
    exit /b 1
)
echo [成功] 图标文件存在

if not exist "tools\UnRAR.exe" (
    echo [警告] UnRAR.exe不存在
) else (
    echo [成功] UnRAR.exe存在
)

REM 安装依赖
echo.
echo [3/6] 安装依赖包...
pip install pyinstaller Pillow -q
if errorlevel 1 (
    echo [错误] 依赖安装失败
    pause
    exit /b 1
)
echo [成功] 依赖安装完成

REM 转换图标
echo.
echo [4/6] 准备图标文件...
python -c "from PIL import Image; img = Image.open('docs/img/update.png'); img.save('docs/img/update.ico', format='ICO')" 2>nul
if exist "docs\img\update.ico" (
    echo [成功] 图标已转换
    set ICON_FILE=docs\img\update.ico
) else (
    echo [警告] 图标转换失败
    set ICON_FILE=docs\img\update.png
)

REM 清理
echo.
echo [5/6] 清理旧文件...
if exist build rmdir /s /q build 2>nul
if exist dist rmdir /s /q dist 2>nul
del /q *.spec 2>nul
echo [成功] 清理完成

REM 构建
echo.
echo [6/6] 开始构建...
echo 请稍候，这可能需要几分钟...
echo.

pyinstaller --name="JAR更新工具" --icon="%ICON_FILE%" --onefile --windowed --clean --noconfirm --add-data="templates;templates" --add-data="static;static" --add-data="tools;tools" --hidden-import=openpyxl --hidden-import=xlrd --hidden-import=pandas --hidden-import=flask --hidden-import=werkzeug --hidden-import=jinja2 --hidden-import=rarfile --hidden-import=tkinter --hidden-import=tkinter.filedialog --hidden-import=tkinter.ttk --hidden-import=tkinter.messagebox --hidden-import=tkinter.scrolledtext src/main.py

if errorlevel 1 (
    echo.
    echo [错误] 构建失败！
    pause
    exit /b 1
)

if not exist "dist\JAR更新工具.exe" (
    echo [错误] 可执行文件未生成
    pause
    exit /b 1
)

echo.
echo ================================================================
echo                    构建成功！
echo ================================================================
echo.
echo 输出文件: dist\JAR更新工具.exe
echo.
echo 使用说明:
echo 1. 将exe文件复制到目标Windows PC
echo 2. 双击运行即可
echo 3. 首次运行需要5-10秒
echo.
echo 注意事项:
echo 1. 可能被杀毒软件拦截，请添加信任
echo 2. 需要Visual C++ Redistributable
echo.

set /p OPEN_DIR="是否打开输出目录？(Y/N): "
if /i "%OPEN_DIR%"=="Y" explorer dist

set /p CLEAN="是否清理临时文件？(Y/N): "
if /i "%CLEAN%"=="Y" (
    if exist build rmdir /s /q build
    del /q *.spec 2>nul
    echo [成功] 清理完成
)

echo.
pause




